
/* 
 *
 * (c) BILE AT BERNARD <webmaster@classinter.com>
 *
 * For the full copyright and license information, please view the LICENSE in the META-INF directory
 * file that was distributed with this source code.
 */
package com.bill.ensi.sti.ssu.jcminterface;

import java.io.IOException;

import javax.smartcardio.Card;
import javax.smartcardio.CardTerminal;

import com.bill.ensi.sti.ssu.jcm.SmartCardManager;
import com.sun.javacard.apduio.CadClientInterface;
import com.sun.javacard.apduio.CadTransportException;

public interface JavacardManagerInterface extends java.util.EventListener {
	/**
	 * 
	 * @param sw
	 * <p>sw repr�sente le code erreur retourn� par la carte</p>
	 * <p>sur 2 octets</p>
	 */
	public void onStart(SmartCardManager smartcardmanager,boolean waitforcarddetection);
	/**
	 * 
	 * @param smartcardmanager
	 * @param waitforcarddetection
	 */
	public void onRestart(SmartCardManager smartcardmanager,boolean waitforcarddetection);
	/**
	 * 
	 * @param smartcardmanager
	 * @param sw
	 */
public void onSWset(SmartCardManager smartcardmanager,int sw);
/**
 * 
 * @param sw
 * <p>sw repr�sente le code erreur retourn� par la carte</p>
 * <p>sur 2 octets</p>
  <p>avec la description du code retour au format commpr�hensible par l'homme</p>
 */
public void onSWset(SmartCardManager smartcardmanager,int sw,String description);
/**
 * 
 * @param sw
 * <p>sw repr�sente le code erreur retourn� par la carte</p>
 * <p>au format chaine hexadecimal</p>
 */
public void onSWset(SmartCardManager smartcardmanager,String sw);
/**
 * 
 * @param sw
 * <p>sw repr�sente le code erreur retourn� par la carte</p>
 * <p>au format chaine hexadecimal</p>
 * <p>avec la description du code retour au format commpr�hensible par l'homme</p>
 */
public void onSWset(SmartCardManager smartcardmanager,String sw,String description);
/**
 * 
 * @param smartcardmanager
 * @param ioexception
 */
public void onIOException(SmartCardManager smartcardmanager,IOException ioexception);
/**
 * 
 * @param smartcardmanager
 * @param exception
 */
public void onException(SmartCardManager smartcardmanager,Exception exception);

/**
 * 
 * @param smartcardmanager
 * @param ioexception
 */
public void onCadTransportException(SmartCardManager smartcardmanager,CadTransportException ioexception);
/**
 *  
 * @param data
 * @param sw
 * @param data
 * @param INS
 * <p>data repr�sente la donn�e renvoy�e par la carte � puce</p>
 */
public void onDataReceived(SmartCardManager smartcardmanager,byte[] data,int sw,byte INS);
/**
 * 
 * @param CLA
 * @param INS
 * @param p1
 * @param p2
 * @param data
 * <p>se declenche lors de l'envoi d'une donn�e � la carte</p>
 */
public void onSendingData(SmartCardManager smartcardmanager,byte CLA,byte INS,byte p1,byte p2,byte[] data);
 
/**
 * 
 * @param cadT
 * @param name
 */
public void onTerminalDetected(CardTerminal terminal,String terminalname);
/**
 * 
 * @param smartcard
 */
 public void onSmartcardDetected(Card smartcard);
 /**
  * 
  * @param smartcard
  */
 public void onSmartcardPowerUp(Card smartcard,byte[] atr);
 /**
  * 
  * @param card
  */
 /**
  * 
  * @param smartcard
  */
 public void onSmartcardPowerDown(Card smartcard);
 /**
  * 
  * @param smartcardmanager
  * @param applicationId
  */
 public void onApplicationSelecting(SmartCardManager smartcardmanager,byte[] applicationId);
}
